iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 14
1

相信有不少習慣使用Windows 的使用者, 對於要使用Linux就抱持著恐懼的態度. 而筆者任職的單位中就存在不少這類的人士在

/images/emoticon/emoticon48.gif
光一個簡單的mount/ umount 指令就可以讓筆者在同一年教了近千次以上 .... 迫不得已的情況下只好 自己寫規則及腳本處理事情

/images/emoticon/emoticon20.gif

實作開始:

  1. 建立一個11-usbmount.rules 檔案
KERNEL!="sd[a-z][0-9]",GOTO="media_by_label_auto_mount_end"  
# Import FS infos  
IMPORT{program}="/sbin/blkid -o udev -p %N"  
# Get a label if present, otherwise specify one  
ENV{ID_FS_LABEL}!="", ENV{dir_name}="%E{ID_FS_LABEL}" 
ENV{ID_FS_LABEL}=="", ENV{dir_name}="usbhd-%k"  

# Global mount options  
ACTION=="add", ENV{mount_options}="relatime"  
# Filesystem-specific mount options  
ACTION=="add", ENV{ID_FS_TYPE}=="vfat|ntfs", ENV{mount_options}="$env{mount_options},utf8,gid=100,umask=002"  

# Mount the device and then run the /usr/local/bin/cplog.sh (must copy to /usr/local/bin , it will works) 
ACTION=="add", RUN+="/bin/mkdir -p /media/tsblog", RUN+="/bin/mount -o $env{mount_options} /dev/%k /media/tsblog", RUN+="/usr/local/bin/cplog.sh"  

# Clean up after removal  (Not run)
ACTION=="remove", ENV{dir_name}!="", RUN+="/bin/umount -l /media/tsblog", RUN+="/bin/rmdir /media/tsblog"  

# Exit  
LABEL="media_by_label_auto_mount_end"

上頭的行為

  • 掛載USB 隨身碟或USB 外接硬碟
  • 支援VFAT/ NTFS 格式
  • 掛載後, 自動建立資料夾 tsblog
  • 執行 /usr/local/bin/cplog.sh 腳本檔案
  1. 建立cplog.sh 腳本檔案
# Copy the content of root folder into the tsblog folder in USB key and then safe remove it.
mkdir -p /media/tsblog/tsblog
cp -rv /root/*.log /media/tsblog/tsblog
printf "Copy total log into USB key.\n"
rm -f /media/tsblog/tsblog/fio_pcie.sh
umount /media/tsblog
printf "Safe remove the USB key.\n"

  1. 將要執行的cplog.sh 腳本檔案複製到/usr/loal/bin 資料夾
  2. 重新讀取udev 規則
    udevadm control --reload-rules

參考資料:


上一篇
自動化的安全性檢測工具 (Windows)
下一篇
怎麼用沒有網路功能的Arduino 板子玩雲??
系列文
自動化測試開發的美麗與憂愁30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言